package com.druid.request.openai.chat;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用于Create completion
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class OpenAIRequest extends OpenAIRequestBaseAbstract {

    /**
     * 生成的文本提示信息
     */
    @JsonIgnore
    private String prompt;

    /**
     * 根据请求参数构建一个 OpenAI 请求对象
     *
     * @param modelId     GPT 模型 ID
     * @param prompt      生成的文本提示信息
     * @param maxTokens   最大生成 tokens 数量
     * @param temperature 控制生成文本的创造性程度
     * @param stop        停止生成文本的标记
     * @param userId      请求的用户 ID，用于跟踪请求和确保在同一个会话中保持一致性
     */
    public OpenAIRequest(String modelId, String prompt, int maxTokens, double temperature, String stop, String userId) {
        this.modelId = modelId;
        this.prompt = prompt;
        this.maxTokens = maxTokens;
        this.temperature = temperature;
        this.stop = stop;
        this.userId = userId;
    }

}

